package com.nidu.demo.oauth2.api;

import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.nidu.demo.oauth2.dto.OAuth2ClientAddCmd;
import com.nidu.demo.oauth2.dto.OAuth2ClientListQry;
import com.nidu.demo.oauth2.dto.OAuth2ClientPageQry;
import com.nidu.demo.oauth2.dto.OAuth2ClientUpdateCmd;
import com.nidu.demo.oauth2.dto.OAuth2ClientCO;

import java.util.Set;

public interface OAuth2ClientService {

    /**
     * 创建OAuth2客户端
     * @param cmd
     * @return
     */
    SingleResponse<OAuth2ClientCO> add(OAuth2ClientAddCmd cmd);

    /**
     * 更新OAuth2客户端
     * @param cmd
     * @return
     */
    SingleResponse<OAuth2ClientCO> update(OAuth2ClientUpdateCmd cmd);

    /**
     * 删除OAuth2客户端
     * @param id
     * @return
     */
    Response delete(Long id);

    /**
     * 批量删除OAuth2客户端
     * @param ids
     * @return
     */
    Response delete(Set<Long> ids);

    /**
     * 获取OAuth2客户端
     * @param id
     * @return
     */
    SingleResponse<OAuth2ClientCO> getById(Long id);

    /**
     * 获取OAuth2客户端列表
     * @param qry
     * @return
     */
    MultiResponse<OAuth2ClientCO> list(OAuth2ClientListQry qry);

    /**
     * 获得OAuth2客户端分页
     *
     * @param pageQry 请求
     * @return OAuth2客户端分页
     */
    PageResponse<OAuth2ClientCO> page(OAuth2ClientPageQry pageQry);

}
